class Solution {
public:
    string addStrings(string num1, string num2) {
        string str;
        str.resize(num1.size()>num2.size()?num1.size()+1:num2.size()+1,'0');
        auto it1=num1.end()-1;
        auto it2=num2.end()-1;
        auto it3=str.end()-1;
        int i=0;
        int n=0;
        int m=0;
        while(it1>=num1.begin() || it2>=num2.begin()){
            if(it1>=num1.begin() && it2>=num2.begin()){
                n=*it1-'0';
                m=*it2-'0';
            }else if(it1>=num1.begin()){
                n=*it1-'0';
                m=0;
            }else if(it2>=num2.begin()){
                m=*it2-'0';
                n=0;
            }
            n+=m;
            if(i==1){
                n+=1;
                i=0;
            }
            if(n>=10){
                n-=10;
                i=1;
            }
            //str.insert(0,1,n+'0');
            *it3=n+'0';
            it3--;
            it1--;
            it2--;
        }
        if(i==1){
            *it3='1';
        }
        if(str[0]=='0'){
            str.erase(0,1);
        }
        return str;
    }
};
